// license-header java merge-point
package edu.uoc.tfc.gui.security.gestioUsuaris.altaUsuari;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionMapping;

import edu.uoc.tfc.dto.security.RoleVO;
import edu.uoc.tfc.gui.common.Level;
import edu.uoc.tfc.gui.common.MissatgeAjax;
import edu.uoc.tfc.gui.common.Option;
import edu.uoc.tfc.gui.common.ResultatAccioAjaxVO;
import edu.uoc.tfc.gui.common.SelectBox;

/**
 * @see edu.uoc.tfc.gui.security.gestioUsuaris.altaUsuari.AltaUsuariController
 */
public class AltaUsuariControllerImpl extends AltaUsuariController
{
    /**
     * @see edu.uoc.tfc.gui.security.gestioUsuaris.altaUsuari.AltaUsuariController#altaUsuari(org.apache.struts.action.ActionMapping, edu.uoc.tfc.gui.security.gestioUsuaris.altaUsuari.AltaUsuariForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    public final void altaUsuari(ActionMapping mapping, edu.uoc.tfc.gui.security.gestioUsuaris.altaUsuari.AltaUsuariForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
    {
    	getSecurityService().
			altaUsuari(form.getUsuari(), form.getRoleId());
	
    	MissatgeAjax missatge = new MissatgeAjax("cu.alta.success", null, Level.Success);
    	ResultatAccioAjaxVO resultat = new ResultatAccioAjaxVO();
    	resultat.addMessage(missatge);
    	form.setResultat(resultat);    
    }

	@Override
	public void carregaRols(ActionMapping mapping, CarregaRolsForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

    	SelectBox selectResultado = new SelectBox();

    	RoleVO[] roles = this.getSecurityService()
    			.carregaRols();

    	Option[] options = new Option[roles.length];
    	for (int i=0; i<roles.length; i++){
    		Option o = new Option();
    		RoleVO r = roles[i];
    		
    		o.setOptionDisplay(r.getRoleId());
    		o.setOptionValue(r.getId().toString());
    		options[i]=o;
    	}
    	
    	selectResultado.setOptions(options);
    	form.setSelectResultat(selectResultado);			
	}

}